const dataBase = require('../database')

// 将商品添加到购物车
function addShoppingCart(req, res){

    // 定义一条根据用户账号获取用户 ID 的SQL
    const getUserId = 'select id from user where userName = ?'

    // 定义一条将商品加入购物车的 SQL 
    const addShoppingCartSql = 'insert into mygoods(goodsId, goodsNum, userId) VALUE (?, ?, ?)'

    // 执行获取用户 ID 的SQL, 初始化用户 ID 变量
    dataBase.query(getUserId, req.body.username, (err, results) => {
        if(err){
            return res.send({
                status: '404',
                message: '未知错误！请稍后重试！'
            })
        }

        if(results.length <= 0){
            return res.send({
                status: '404',
                message: '获取用户 Id 失败！'
            })
        }

        let userId = results[0].id

        // TODO 执行商品加入购物车的 SQL ,进行将数据添加到数据库
        dataBase.query(addShoppingCartSql, [req.body.goodsId, req.body.goodsNum, userId], (err, results) => {
            if(err){
                return res.send({
                    status: '404',
                    message: '未知错误！请稍后重试！'
                })
            }

            if(results.affectedRows !== 1){
                return res.send({
                    status: 404,
                    message: '未知错误！请稍后重试！'
                })
            }

            res.send({
                status: 200,
                message: '添加成功！'
            })

        })
    })

}


// 将商品移除购物车
function removeGoodsShoppingCart(req, res){
    // 定义一条 SQL
    const removeGoodsShoppingCartSql = 'delete from mygoods where id = ?'

    dataBase.query(removeGoodsShoppingCartSql, req.body.mygoodsId, (err, results) => {
        if(err){
            return res.send({
                status: 404,
                message: '未知错误， 请稍后重试！'
            })
        }

        if(results.affectedRows !== 1){
            return res.send({
                status: 404,
                message: '未知错误， 请稍后重试！'
            })
        }

        res.send({
            status: 200,
            message: '已从购物车移除你不想要的商品！'
        })
        
    })
}

// 将商品批量移除购物车
function removeGoodssShoppingCart(req, res){

    const mygoodsIds = req.body.mygoodsIds

    if(mygoodsIds.length <= 0){
        return res.send({
            status: 404,
            message: '请选择要移除的商品！'
        })
    }

    // 定义一条 SQL
    const removeGoodsShoppingCartSql = 'delete from mygoods where id = ?'

    for(let i = 0; i < mygoodsIds.length; i++){
        dataBase.query(removeGoodsShoppingCartSql, mygoodsIds[i], (err, results) => {
            if(err){
                return res.send({
                    status: 404,
                    message: '未知错误， 请稍后重试！'
                })
            }

            if(results.affectedRows !== 1){
                return res.send({
                    status: 404,
                    message: '未知错误， 请稍后重试！'
                })
            }
        })
    }
    res.send({
        status: 200,
        message: '已从购物车移除你大量不想要的商品！'
    })
}

module.exports = {
    addShoppingCart,
    removeGoodsShoppingCart,
    removeGoodssShoppingCart
}